
package gov.nih.nlm.ncbi.soap.eutils.elink;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>Java class for anonymous complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}db" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}id" maxOccurs="unbounded" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}reldate" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}mindate" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}maxdate" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}datetype" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}term" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}dbfrom" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}linkname" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}WebEnv" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}query_key" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}cmd" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}tool" minOccurs="0"/>
 *         &lt;element ref="{http://www.ncbi.nlm.nih.gov/soap/eutils/elink}email" minOccurs="0"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "db",
    "id",
    "reldate",
    "mindate",
    "maxdate",
    "datetype",
    "term",
    "dbfrom",
    "linkname",
    "webEnv",
    "queryKey",
    "cmd",
    "tool",
    "email"
})
@XmlRootElement(name = "eLinkRequest")
public class ELinkRequest {

    protected String db;
    @XmlElement(required = true)
    protected List<String> id;
    protected String reldate;
    protected String mindate;
    protected String maxdate;
    protected String datetype;
    protected String term;
    protected String dbfrom;
    protected String linkname;
    @XmlElement(name = "WebEnv")
    protected String webEnv;
    @XmlElement(name = "query_key")
    protected String queryKey;
    protected String cmd;
    protected String tool;
    protected String email;

    /**
     * Gets the value of the db property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDb() {
        return db;
    }

    /**
     * Sets the value of the db property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDb(String value) {
        this.db = value;
    }

    /**
     * Gets the value of the id property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the id property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getId().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link String }
     * 
     * 
     */
    public List<String> getId() {
        if (id == null) {
            id = new ArrayList<String>();
        }
        return this.id;
    }

    /**
     * Gets the value of the reldate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getReldate() {
        return reldate;
    }

    /**
     * Sets the value of the reldate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setReldate(String value) {
        this.reldate = value;
    }

    /**
     * Gets the value of the mindate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMindate() {
        return mindate;
    }

    /**
     * Sets the value of the mindate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMindate(String value) {
        this.mindate = value;
    }

    /**
     * Gets the value of the maxdate property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getMaxdate() {
        return maxdate;
    }

    /**
     * Sets the value of the maxdate property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setMaxdate(String value) {
        this.maxdate = value;
    }

    /**
     * Gets the value of the datetype property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDatetype() {
        return datetype;
    }

    /**
     * Sets the value of the datetype property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDatetype(String value) {
        this.datetype = value;
    }

    /**
     * Gets the value of the term property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTerm() {
        return term;
    }

    /**
     * Sets the value of the term property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTerm(String value) {
        this.term = value;
    }

    /**
     * Gets the value of the dbfrom property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDbfrom() {
        return dbfrom;
    }

    /**
     * Sets the value of the dbfrom property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDbfrom(String value) {
        this.dbfrom = value;
    }

    /**
     * Gets the value of the linkname property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getLinkname() {
        return linkname;
    }

    /**
     * Sets the value of the linkname property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setLinkname(String value) {
        this.linkname = value;
    }

    /**
     * Gets the value of the webEnv property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getWebEnv() {
        return webEnv;
    }

    /**
     * Sets the value of the webEnv property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setWebEnv(String value) {
        this.webEnv = value;
    }

    /**
     * Gets the value of the queryKey property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getQueryKey() {
        return queryKey;
    }

    /**
     * Sets the value of the queryKey property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setQueryKey(String value) {
        this.queryKey = value;
    }

    /**
     * Gets the value of the cmd property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCmd() {
        return cmd;
    }

    /**
     * Sets the value of the cmd property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCmd(String value) {
        this.cmd = value;
    }

    /**
     * Gets the value of the tool property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTool() {
        return tool;
    }

    /**
     * Sets the value of the tool property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTool(String value) {
        this.tool = value;
    }

    /**
     * Gets the value of the email property.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEmail() {
        return email;
    }

    /**
     * Sets the value of the email property.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEmail(String value) {
        this.email = value;
    }

}
